package bist.believeinstep.util;

import java.sql.Date;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class Util {
	
	/**
	 * Phương thức kết nối database
	 * @param bean
	 * @return đối tượng DAO có thể truy vấn database
	 */
	public static Object getConnection(String bean){
		
		Object result = null;
		
		try {
			ApplicationContext context = new ClassPathXmlApplicationContext(Constant.applicationConfig);
			result = context.getBean(bean);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}
	
	/**
	 * Lấy ngày hiện tại
	 * @return
	 */
	public static Date getCurrentDate(){
		
		Date result = null;
		
		try {
			Calendar calendar = Calendar.getInstance();
			result = new Date(calendar.getTimeInMillis());
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}
	
	/**
	 * Lấy ngày giờ hiện tại
	 * @return
	 */
	public static Timestamp getCurrentDateTime(){
		
		Timestamp result = null;
		
		try {
			Calendar calendar = Calendar.getInstance();
			result = new Timestamp(calendar.getTimeInMillis());
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}
	
	/**
	 * Chuyển Date thành String theo định dạng 
	 * @param date
	 * @return
	 */
	public static String dateToString(Date date){
		
		String result = "";
		
		try {
			SimpleDateFormat format = new SimpleDateFormat(Constant.DATE_FORMAT);
			result = format.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}
	
	/**
	 * Chuyển TimeStamp thành String theo định dạng
	 * @param date
	 * @return
	 */
	public static String dateToString(Timestamp date){
		
		String result = "";
		
		try {
			SimpleDateFormat format = new SimpleDateFormat(Constant.DATETIME_FORMAT);
			result = format.format(date);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		return result;
	}
	
	public static void main(String[] args){
//		Date date = Util.getCurrentDate();
//		System.out.println(Util.dateToString(date));
//		
//		Timestamp timestamp = Util.getCurrentDateTime();
//		System.out.println(Util.dateToString(timestamp));
	}
	
}
